/**
 * 平台识别工具
 * 用于识别当前运行的平台并返回对应的from参数
 */

/**
 * 获取当前平台类型
 * @returns {string} 平台类型：'alipay' | 'wechat' | 'h5' | 'app' | 'unknown'
 */
export function getCurrentPlatform() {
    // #ifdef MP-ALIPAY
    return 'alipay'
    // #endif

    // #ifdef MP-WEIXIN
    return 'wechat'
    // #endif

    // #ifdef H5
    return 'h5'
    // #endif

    // #ifdef APP-PLUS
    return 'app'
    // #endif

    return 'unknown'
}

/**
 * 获取登录接口的from参数
 * @returns {string} from参数值
 */
export function getLoginFrom() {
    const platform = getCurrentPlatform()

    switch (platform) {
        case 'alipay':
            return 'alipay'
        case 'wechat':
            return 'wechat'
        case 'h5':
            return 'h5'
        case 'app':
            return 'app'
        default:
            return 'unknown'
    }
}

/**
 * 获取支付接口的from参数
 * @returns {string} 支付from参数值
 */
export function getPaymentFrom() {
    const platform = getCurrentPlatform()

    switch (platform) {
        case 'alipay':
            return 'alipay'  // 支付宝小程序
        case 'wechat':
            return 'routine' // 微信小程序
        case 'h5':
            return 'h5'      // H5页面
        case 'app':
            return 'app'     // APP应用
        default:
            return 'routine'
    }
}

/**
 * 获取平台显示名称
 * @returns {string} 平台显示名称
 */
export function getPlatformDisplayName() {
    const platform = getCurrentPlatform()

    switch (platform) {
        case 'alipay':
            return '支付宝小程序'
        case 'wechat':
            return '微信小程序'
        case 'h5':
            return 'H5页面'
        case 'app':
            return 'APP应用'
        default:
            return '未知平台'
    }
}

/**
 * 检查是否为小程序环境
 * @returns {boolean}
 */
export function isMiniProgram() {
    const platform = getCurrentPlatform()
    return platform === 'alipay' || platform === 'wechat'
}

/**
 * 检查是否为支付宝小程序
 * @returns {boolean}
 */
export function isAlipayMiniProgram() {
    return getCurrentPlatform() === 'alipay'
}

/**
 * 检查是否为微信小程序
 * @returns {boolean}
 */
export function isWechatMiniProgram() {
    return getCurrentPlatform() === 'wechat'
}

/**
 * 获取平台特定的配置信息
 * @returns {object} 平台配置对象
 */
export function getPlatformConfig() {
    const platform = getCurrentPlatform()

    const configs = {
        alipay: {
            name: '支付宝小程序',
            loginFrom: 'alipay',
            paymentFrom: 'alipay',
            supportedPayments: ['alipay'],
            color: '#1678ff',
            icon: '支'
        },
        wechat: {
            name: '微信小程序',
            loginFrom: 'wechat',
            paymentFrom: 'routine',
            supportedPayments: ['weixin'],
            color: '#07c160',
            icon: '微'
        },
        h5: {
            name: 'H5页面',
            loginFrom: 'h5',
            paymentFrom: 'h5',
            supportedPayments: ['weixin', 'alipay'],
            color: '#409eff',
            icon: 'H5'
        },
        app: {
            name: 'APP应用',
            loginFrom: 'app',
            paymentFrom: 'app',
            supportedPayments: ['weixin', 'alipay'],
            color: '#909399',
            icon: 'APP'
        }
    }

    return configs[platform] || configs.h5
}

/**
 * 调试信息输出
 */
export function debugPlatformInfo() {
    const platform = getCurrentPlatform()
    const config = getPlatformConfig()

    console.log('=== 平台识别信息 ===')
    console.log('当前平台:', platform)
    console.log('平台名称:', config.name)
    console.log('登录from:', config.loginFrom)
    console.log('支付from:', config.paymentFrom)
    console.log('支持的支付方式:', config.supportedPayments)
    console.log('==================')

    return {
        platform,
        config
    }
} 